package com.teamin.mapper;

import com.teamin.entity.FileEntity;
import com.teamin.entity.FileTempEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface FileMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(FileEntity record);

    int insertSelective(FileEntity record);

    FileEntity selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(FileEntity record);

    int updateByPrimaryKey(FileEntity record);

    /**
     * 插入一个临时的文件
     * @uuid UUID
     * @belongType 文件属于什么类型 所属的类型 1 表示任务,2表圈子
     * @belongId 圈子或任务ID 根据 @belongType 来判断
     * @fileName 文件名
     * @suffix 文件后缀
     * @return 插入的状态
     */
    int insertTempFile(@Param("uuid")String uuid, @Param("belongType")Integer belongType, @Param("belongId")Long belongId, @Param("fileName")String fileName, @Param("suffix")String suffix) ;

    /**
     * 查询临时文件
     * @uuid UUID
     * @return 插入的状态
     */
    FileTempEntity selectTempFile(@Param("uuid")String uuid) ;

    /**
     * 查询临时文件
     * @uuid UUID
     * @return 插入的状态
     */
    int deleteTempFile(@Param("uuid")String uuid) ;

    /**
     * 插入一个文件
     * @uuid UUID
     * @return 插入的状态
     */
    int insertFile(FileEntity file) ;

    /**
     *  获取要回收的临时文件
     */
    public List<FileTempEntity> getRecoveryTempFile() ;

    /**
     *  删除文件
     */
    public int deleteFile(@Param("fileId") Long fileId) ;

    /**
     *  删除文件
     */
    public int deleteFileByUUID(@Param("uuid") String uuid) ;


    /**
        设置文件已被OSS回收状态
     */
    public int updateRecovery(@Param("fileIds") String fileIds) ;

    /**
     *  获取已被删除的文件删除文件
     */
    public List<FileEntity> selectDeletedFile() ;


}